﻿#include<iostream>
#include<vector>
using namespace std;

//class Solution {
//public:
//    int singleNumber(vector<int>& nums) {
//        int ret = 0;
//        for (int i = 0; i < 32; i++)
//        {
//            int n = 0;
//            for (auto e : nums)
//            {
//                n += (e >> i) & 1;
//            }
//            ret |= (n % 3) << i;
//        }
//        return ret;
//    }
//};

//class Solution {
//public:
//    vector<int> singleNumber(vector<int>& nums) {
//        int n = 0;
//        for (auto e : nums)
//        {
//            n ^= e;
//        }
//
//        //int i = 0;
//        //for ( i = 0; i < 32; i++)
//        //{
//        //    if ((n >> i & 1) == 1)
//        //        break;
//        //}
//
//        int lowbit = (n == INT_MIN ? n : n & (-n));
//        //00000000 00000000 00001011 00000000 : n
//        //11111111 11111111 11110101 00000000 : -n
//        //00000000 00000000 00000001 00000000 : n & -n
//
//        int ret1 = 0, ret2 = 0;
//        for (auto e : nums)
//        {
//            if (e & lowbit)
//                ret1 ^= e;
//            else
//                ret2 ^= e;
//        }
//        vector<int> v = { ret1,ret2 };
//        return v;
//    }
//};
//
//int main()
//{
//    Solution s1;
//    vector<int> nums = { 1,2,1,3,2,5 };
//    s1.singleNumber(nums);
//}

//int main()
//{
//	int ar[] = { 1,2,3,4,0,5,6,7,8,9 };
//	int n = sizeof(ar) / sizeof(int);
//	vector<int> v(ar, ar + n);
//	vector<int>::iterator it = v.begin();
//	while (it != v.end())
//	{
//		if (*it != 0)
//			cout << *it;
//		else
//			v.erase(it);
//		it++;
//	}
//	return 0;
//}